const {app, BrowserWindow, screen} = require('electron')
const path = require('path')
const updater = require('./updater')

const createWindow = () => {
    const win = new BrowserWindow({
        title: "Electron + Vue3",
        // 设置窗口尺寸为屏幕工作区尺寸
        width: screen.getPrimaryDisplay().workAreaSize.width,
        height: screen.getPrimaryDisplay().workAreaSize.height,
        // 设置最小尺寸
        minWidth: 800,
        minHeight: 600,
        // 窗口图标
        icon: path.resolve(__dirname, "../build/icon.ico"),
        webPreferences: {
            preload: path.join(__dirname, 'preload.js')
        }
    })

    // 菜单
    win.setMenu(null)

    if (app.isPackaged) {
        // 加载electron/index.html
        win.loadFile(path.join(__dirname, '../dist/index.html')).then()
    } else {
        // 加载本地vue项目
        win.loadURL("http://localhost:5173/").then()

        // 开发控制台
        win.webContents.openDevTools()
    }
}

app.whenReady().then(() => {
    createWindow()

    // 检查更新
    updater.checkUpdate()

    // macOS：如果没有窗口打开则打开一个窗口
    app.on('activate', () => {
        if (BrowserWindow.getAllWindows().length === 0) createWindow()
    })
})

// Windows & Linux：关闭所有窗口时退出应用
app.on('window-all-closed', () => {
    if (process.platform !== 'darwin') app.quit()
})